1. Field of the Invention
The present invention pertains to the Internet/Intranet systems. More particularly, this invention relates to a web server request classification system that classifies requests based on individual user's behavior and expectation.
2. Description of the Related Art
With the rapid growth of the Internet, more and more business and residential users are beginning to rely on the Internet for their mainstream and mission-critical activities. As is known, the Internet typically refers to a number of data service systems connected together via a high speed interconnect network (see FIG. 1). Each data service system typically includes Internet server applications that host contents for various customers. The data service system can also host other applications. Remote user terminals (e.g., terminals 11a–11n in FIG. 1) may be connected to a data service system (e.g., the data service system 20 in FIG. 1) via an interconnect network. Each user terminal is equipped with a web browser (or other software such as an e-mail software) that allows its user (i.e., a person) to access the contents and/or applications hosted in various data service systems through the corresponding user terminal.
Popular Internet applications include World Wide Web (WWW), E-mail, news, and FTP applications. All of these applications follow the client-server model and rely on the Transmission Control Protocol (TCP) for reliable delivery of information/applications between severs and user terminals. These applications can also be referred to as server applications. A user can access a server application (e.g., web server) by generating at least one request from a corresponding user terminal to the corresponding server application. The server application then services the request. A server application can be accessed by multiple user terminals at the same time. The server application typically serves the user requests in the first-in-first-out (FIFO) fashion.
One problem of the above-identified prior art server application is that it does not have protection mechanism against excessive load conditions. Unbearably long delays or even deadlocks may occur when the total number of user requests received by the server application at one time greatly exceeds the total number of access requests permitted by the server application (i.e., the entire system is overloaded).
Another problem is that the server application does not provide performance stabilities to its customers that host their content/service sites in the server application. This means that the prior art server application does not provide features like performance stability over a range of client demands, non-interference performance among co-hosted content sites, targeted performance, and overload protection for the hosted content sites.
To overcome these problems, prior proposals have been made to add quality-of-service (QoS) middleware in the server application. The QoS middleware classifies requests into different classes. For example, the QoS middleware classifies a request as an existing session premium request if the incoming request is part of an existing session and requires preferred treatment. If the request is part of an existing session but does not require preferred treatment, the QoS middleware can classify the request as an existing session basic request. If the incoming request is not part of an existing session, then the middleware can classify the request as a new session request.
Disadvantages are, however, still associated with this prior approach. One disadvantage is that the classification criteria does not take into account the user expectation or tolerance of latency. Studies have shown that users become less tolerate of delay as they proceed with a session. Prior art middleware provides the same treatment to each request within a class, regardless whether the request is in the earlier part or later part of a session. So if the middleware needs to send a request from a class (e.g., the existing session basic class) to the server application, the middleware will only pick one request based on the FIFO order. This means that the middleware does not give any consideration to user tolerance during its classification and scheduling. If the middleware treats a request that occurs late in a session the same way as it treats a request that occurs early in a session, the users of late-session requests may perceive unacceptably long delays although the actual latency time for all the requests is about the same.